package br.com.skytef.dao;

public class SqlTicketReport {


	/*-------------------------------------------------------------------------------------------
	 * SELECT
	 -------------------------------------------------------------------------------------------*/

	
	public static String getQrySelectRelatMovByPeriod() {
		StringBuffer sql = new StringBuffer();

		sql.append("SELECT tkt.idticket, ");
		sql.append("       tkt.idempresa,  ");
		sql.append("       tkt.idoperador,  ");
		sql.append("       tkt.idtarifa,  ");
		sql.append("       tkt.datacriacao,  ");
		sql.append("       tkt.prisma,  ");
		sql.append("       tkt.veiculoplace,  ");
		sql.append("       tkt.veiculocor,  ");
		sql.append("       tkt.veiculotipo,  ");
		sql.append("       tkt.veiculomarca,  ");
		sql.append("       tkt.veiculomdelo,  ");
		sql.append("       mve.tipomov,  ");
		sql.append("       mve.idoperador,  ");
		sql.append("       mve.datahoramov,  ");
		sql.append("       mvs.tipomov,  ");
		sql.append("       mvs.idoperador,  ");
		sql.append("       mvs.datahoramov,  ");
		sql.append("       concat('',TIMEDIFF(mvs.datahoramov, mve.datahoramov)) AS periodo, ");
		sql.append("       opt.nome,  ");
		sql.append("       ope.nome,  ");
		sql.append("       ops.nome,  ");
		sql.append("       trf.descricaoTarifa,  ");
		sql.append("       pgt.idpagamento,  ");
		sql.append("       pgt.idticket,  ");
		sql.append("       pgt.ativo,  ");
		sql.append("       pgt.tipoorigem,  ");
		sql.append("       pgt.datacriacao,  ");
		sql.append("       pgt.datadocumento,  ");
		sql.append("       pgt.datavencimento,  ");
		sql.append("       pgt.datapgto,  ");
		sql.append("       pgt.momentopgto,  ");
		sql.append("       pgt.formapgto,  ");
		sql.append("       pgt.valortarifa,  ");
		sql.append("       pgt.multa,  ");
		sql.append("       pgt.juros,  ");
		sql.append("       pgt.descontos,  ");
		sql.append("       pgt.valorpago,  ");
		sql.append("       pgt.obs  ");
		sql.append("FROM   ticket tkt  ");
		sql.append("       LEFT JOIN ticket_movimentacao mvs  ");
		sql.append("              ON tkt.idticket = mvs.ticket_idticket  ");
		sql.append("                 AND mvs.tipomov = 'Saida'  ");
		sql.append("       LEFT JOIN ticket_movimentacao mve  ");
		sql.append("              ON tkt.idticket = mve.ticket_idticket  ");
		sql.append("                 AND mve.tipomov = 'Entrada'  ");
		sql.append("       LEFT JOIN operador opt  ");
		sql.append("              ON tkt.idoperador = opt.idoperador  ");
		sql.append("       LEFT JOIN operador ope  ");
		sql.append("              ON tkt.idoperador = ope.idoperador  ");
		sql.append("       LEFT JOIN operador ops  ");
		sql.append("              ON tkt.idoperador = ops.idoperador  ");
		sql.append("       LEFT JOIN pagamento pgt  ");
		sql.append("              ON tkt.idticket = pgt.idticket  ");
		sql.append("              LEFT JOIN tarifa trf  ");
		sql.append("                     ON tkt.idTarifa = trf.idTarifa ");		
		sql.append("WHERE DATE(mve.datahoramov) BETWEEN ? AND ?;"); 



		return sql.toString();
	}
	
	public static String getQrySelectTotalByType() {
		StringBuffer sql = new StringBuffer();

		sql.append("SELECT mov.datahoramov, ");
		sql.append("       tkt.veiculotipo, "); 
		sql.append("       Count(tkt.idticket)  quantidade, "); 
		sql.append("       Sum(pgt.valortarifa) valortarifa, "); 
		sql.append("       Sum(pgt.valorpago)   valorpago "); 
		sql.append("FROM   ticket tkt "); 
		sql.append("       LEFT JOIN pagamento pgt "); 
		sql.append("              ON tkt.idticket = pgt.idticket "); 
		sql.append("       LEFT JOIN ticket_movimentacao mov "); 
		sql.append("              ON tkt.idticket = mov.ticket_idticket "); 
		sql.append("                 AND mov.tipomov = 'Entrada' "); 
		sql.append("WHERE  Date(mov.datahoramov) BETWEEN ? AND ? "); 
		sql.append("       AND ( pgt.valorpago <> 0 ) "); 
		sql.append("GROUP  BY Date(mov.datahoramov), "); 
		sql.append("          tkt.veiculotipo "); 


		return sql.toString();
	}	
}
